package com.hedl.practice.diyJava.data.date_time_formatter.test;

import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        ZonedDateTime zdt = ZonedDateTime.now();
        LocalDateTime ldt = zdt.toLocalDateTime();

        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm ZZZZ");
        System.out.println("格式一："+dtf.format(zdt));

        DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy MMM dd EE HH:mm", Locale.CHINA);
        System.out.println("格式二："+dtf1.format(zdt));

        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("E, MMMM/dd/yyyy HH:mm",Locale.US);
        System.out.println("格式三："+dtf2.format(zdt));

        System.out.println("============================================");
        /**
         * 当我们直接调用System.out.println()对一个ZonedDateTime或者LocalDateTime实例进行打印的时候，
         * 实际上，调用的是它们的toString()方法，默认的toString()方法显示的字符串就是按照ISO 8601格式显示的，
         * 我们可以通过DateTimeFormatter预定义的几个静态变量来引用：
         */
        System.out.println("调用日期："+DateTimeFormatter.ISO_DATE.format(ldt));
        System.out.println("调用日期时间："+DateTimeFormatter.ISO_DATE_TIME.format(ldt));
        /**
         * 小结:
         *      对ZonedDateTime或LocalDateTime进行格式化，需要使用DateTimeFormatter类；
         *      DateTimeFormatter可以通过格式化字符串和Locale对日期和时间进行定制输出。
         */
    }
}
